1. Field of the Invention
The present invention relates to computer aided design (CAD) used to implement integrated circuits, and more specifically to a method and apparatus for measuring constraint parameters at different combinations of circuit parameters.
2. Related Art
Integrated circuits generally contain several components such as flip-flops and registers. It is often desirable to determine several characteristics of the components, for example, to determine a maximum clock speed at which an integrated circuit may be operated. Some of such characteristics of interest are constraint parameters. Constraint parameters generally refer to values specifying the minimum delay/duration between occurrence of two signals, with the reference signal being termed as a constraining signal and the other signal being referred to as a constrained signal.
For example, constraint parameters of interest with reference to sequential components (having memory, e.g. flip-flops) include setup time, hold time and minimum pulse width. As is well known, setup time generally refers to a minimal time duration a signal of interest (e.g., input signal as the constrained signal) is to reach a desired signal level ahead of a reference signal (constraining signal). Hold time refers to a minimum duration of time the signal of interest is to stay at the desired level after an edge of a clock signal, for example, to enable proper sampling. Pulse width refers to a minimum pulse duration the reference/constraining signal (e.g. clock signal) needs to stay at a desired signal level for a signal of interest to be sampled accurately by a sequential component.
Constraint values generally depend on specific combination of circuit parameters associated with an integrated circuit. Examples of circuit parameters include the slew rates of the clock and the data signals. As is well known, the slew of a signal represents the rate of change of signal level when the signal transitions from one logical value to the other. In general, slew is measured based on an amount of time taken for the signal to change from a level substantially representing one logical value to another level representing the other logical value.
Circuit parameters may include (or be affected by) other factors such as manufacturing process, temperature and voltage, which generally impact the electrical characteristics of integrated circuits. Accordingly, the value of constraint parameters can be affected by such parameters as well. Thus, a constraint parameter may take one value at one combination of circuit parameters and another value at another combination of circuit parameters.
The correct value of a constraint parameter (for a specific combination of circuit parameters) is often determined by searching within a search range (of the constraint parameter). In an approach referred to as a binary search well known in the relevant arts, a value in the middle of the search range is assumed for the constraint parameter, and an input signal is provided to the component simulated using tools such as SPICE also well known in the relevant arts. The search range for the next iteration is set to either the upper half or a lower half (of the search range for the previous iteration) depending on the result of simulation. Such an approach is continued iteratively until the correct value (within acceptable error) of the constraint parameter is determined.
It is often desirable to measure the correct value of constraint parameters at different combinations of circuit parameters. For example, a cell library may contain designs corresponding to several components (e.g., flip-flops, latches), and it may be desirable to compute the constraint values of the components for different combinations of circuit parameters. The values thus computed may be stored associated with the corresponding components in the cell libraries. When an integrated circuit is designed later, a designer (or tool assisting with the design) may make appropriate design decisions quickly based on the available values, irrespective of the combination of circuit parameters at which the circuit is being designed.
It may thus be appreciated that the number of constraint values to be measured can be substantially high with the number of elements/variables in the circuit parameters, the number of possible values for each specification element, etc. At least due to such a high number of constraint values to be computed, substantial amount of time (or computational resources) may be required to determine the constraint values of interest. It may thus be desirable to reduce time to measure constraint parameters at different combinations of specifications.